<?php
/**
 * Conjugation Class
 * @package conjugation
 * @author atma <atma@atmaworks.com>
 */
class Conjugation {
	
//	function Conjugation(&$modx,$config) {
//		$this->__construct($modx,$config);
//	}
//	function __construct(&$modx,$config) {
//		$this->modx =& $modx;
//		$this->config = $config;
//	}


    
	function conjugate($verb, $usevosotros, $usepronouns) {
		global $modx;

		$output = '';
		if (empty($verb)) {
			$output .= 'You must enter some verb';
			return $output;
		}
		$verbend = substr($verb, -2);
		if ($verbend == 'se') {
			$isReflexive = true;
			$verbLength = strlen($verb) - 2;
			$verb = substr($verb, 0, $verbLength);
			$verbend = substr($verb, -2);
			$pronouns = array(
				'yo' => 'yo me',
				'tu' => 'tú te',
				'el' => 'él/ella/Usted se',
				'nosotros' => 'nosotros nos',
				'vosotros' => 'vosotros os',
				'ustedes' => 'ellos/ellas/Ustedes se'
			);
		} else {
			$pronouns = array(
				'yo' => 'yo',
				'tu' => 'tú',
				'el' => 'él/ella/Usted',
				'nosotros' => 'nosotros',
				'vosotros' => 'vosotros',
				'ustedes' => 'ellos/ellas/Ustedes'
			);
		}
		if ($verbend == 'ar') {
			$conj = 1;
		} else if ($verbend == 'er') {
			$conj = 2;
		} else if ($verbend == 'ir') {
			$conj = 3;
		} else {
			$output .= 'Not verb or not infinitive';
			return $output;
		}
		$verbLength = strlen($verb) - 2;
		$v = substr($verb, 0, $verbLength);
		
		$q = $modx->db->select('infinitive, type', $modx->config['table_prefix'].'conjugations_infinitive', 'infinitive = "'.$verb.'"');
		//$q = $modx->db->query('SELECT infinitive, type FROM `modx_conjugations_infinitive` WHERE infinitive = "'.$verb.'"');
		if ($modx->db->getRecordCount($q)) {
			$isInDb = true;
			$row = $modx->db->getRow($q);
			$verbtype = $row['type'];
		}
		
		$output .= 'Conjugation: ' . $conj . '<br />';
		$output .= $verbend . '<br />';
		$output .= $v . '<br />';
		$output .= $isInDb . ' - ' . $verbtype . '<br />';
		$output .= $verb . '<br />';
		$output .= $this->getPresenteIndicativo($v, $conj, true, $pronouns);
		
		return $output;
	}
	
	function getPresenteIndicativo ($v, $conj, $vos, $pronouns) {
		$tpl = '';
		$tpl .= '<ul>';
		switch ($conj) {
			case 1:
			$tpl .= '<li>'.$pronouns['yo'].' '.$v.'o</li>';
			$tpl .= '<li>'.$pronouns['tu'].' '.$v.'as</li>';
			$tpl .= '<li>'.$pronouns['el'].' '.$v.'a</li>';
			$tpl .= '<li>'.$pronouns['nosotros'].' '.$v.'amos</li>';
			if ($vos) {	$tpl .= '<li>'.$pronouns['vosotros'].' '.$v.'áis</li>';	}
			$tpl .= '<li>'.$pronouns['ustedes'].' '.$v.'an</li>';
			break;
			
			case 2:
			$tpl .= '<li>'.$pronouns['yo'].' '.$v.'o</li>';
			$tpl .= '<li>'.$pronouns['tu'].' '.$v.'es</li>';
			$tpl .= '<li>'.$pronouns['el'].' '.$v.'e</li>';
			$tpl .= '<li>'.$pronouns['nosotros'].' '.$v.'emos</li>';
			if ($vos) {	$tpl .= '<li>'.$pronouns['vosotros'].' '.$v.'éis</li>';	}
			$tpl .= '<li>'.$pronouns['ustedes'].' '.$v.'en</li>';
			break;
			
			case 3:
			$tpl .= '<li>'.$pronouns['yo'].' '.$v.'o</li>';
			$tpl .= '<li>'.$pronouns['tu'].' '.$v.'es</li>';
			$tpl .= '<li>'.$pronouns['el'].' '.$v.'e</li>';
			$tpl .= '<li>'.$pronouns['nosotros'].' '.$v.'imos</li>';
			if ($vos) {	$tpl .= '<li>'.$pronouns['vosotros'].' '.$v.'is</li>'; }
			$tpl .= '<li>'.$pronouns['ustedes'].' '.$v.'en</li>';
			break;
		}
		$tpl .= '</ul>';
		return $tpl;
	}
}
?>